<?php

namespace common\models;

use common\base\BaseBackendActiveRecord;
use yii\base\Model;
use yii\behaviors\TimestampBehavior;

/**
 * This is the model class for table "user_bind_log".
 *
 * @property int $id 自增
 * @property string $order_number  订单编号
 * @property int $shift_id 班次ID
 * @property int $circuit_id  线路ID
 * @property int $s_id 上车id
 * @property int $e_id 下车id
 * @property int $p_id 途径点信息id
 * @property int $order_status 订单状态：0：待支付；1：已付款未派车；2：已付款已派车；3：已发车：4：已完成；5：已失效；
 * @property int $ridership 乘客数
 * @property float $order_price 订单总价金额
 * @property float $price 订单金额
 * @property float $service_charge 总服务费
 * @property float $premium 总保险费
 * @property float $refund_amount 退款金额
 * @property float $refund_service 退款手续费
 * @property string $refund_time 退款时间
 * @property string $refund_number 退款单号
 * @property int $refund_status 退款状态：0：申请成功：1：退款成功；2：退款失败
 * @property int $source 订单来源：1：微信公众号
 * @property int $user_id 下单人员：会员ID
 * @property string $user_telephone 下单人手机号
 * @property int $pay_type 支付方式：1：微信；2：支付宝；
 * @property string $pay_time 支付时间
 * @property float $pay_price 支付金额
 * @property int $pay_status 支付状态；0：未支付；1：已支付
 * @property string $codenum 二维吗CODE
 * @property string $codeimg 二维码图片地址
 * @property int $is_check 是否检票：0：否；1：是；
 * @property int $bind_uid 分销返佣绑定ID
 * @property int $rebate_status 是否获得分销1获得0不获得
 * @property int $rebate_type 分销方式1售价比例2金额
 * @property float $rebate 分销金额/比列
 * @property float $rebate_price 应得分销金额
 * @property int $rebate_issue 已发放分销金额0为发放1已发放
 * @property int $status 状态：1：正常；2：删除；0：取消；3：改签；4：退款
 * @property string $addtime 添加时间
 * @property string $updatetime 更新时间
 * @property string $canceltime 取消时间
 */
class Order extends BaseBackendActiveRecord
{
    //发放分销金额0未发放1已发放
    const REBATE_ISSUE_NO=0;
    const REBATE_ISSUE=1;
    //订单状态  0：待支付；1：已付款未派车；2：已付款已派车；3：已发车：4：已完成；5：已失效；
    const STATUS_TO_BE_PAID=0;
    const STATUS_TO_PAID_DELIVERED=1;
    const STATUS_PAID_DELIVERED=2;
    const STATUS_DEPART=3;
    const STATUS_COMPLETED=4;
    const STATUS_INVALID=5;
    //状态：1：正常；2：删除；0：取消；3：改签；4：退款；
    const STATUS_NORMAL=1;
    const STATUS_DEL=2;
    const STATUS_CANCEL=0;
    const STATUS_CHANGE=3;
    const STATUS_REFUND=4;
    //是否付款 0否 1是
    const PAY_NO=0;
    const PAY_YES=1;
    //是否检票 0否 1是
    const IS_CHECK_NO=0;
    const IS_CHECK_YES=1;
    //是否可获得佣金 1获得 0不获得
    const REBATE_STATUS_NO=0;
    const REBATE_STATUS_YES=1;
    /**
     * {@inheritdoc}
     */
    public static function tableName()
    {
        return 'order';
    }

    /**
     * {@inheritdoc}
     */
    public function rules()
    {
        return [
            [['order_number','refund_time','refund_number','user_telephone','pay_time','codenum','codeimg','canceltime'],'string'],
            [['updatetime','addtime'], 'safe'],
            [
                [
                    'shift_id', 'circuit_id','s_id','e_id','order_status','ridership','refund_status','source','user_id',
                    'pay_type','pay_status','is_check','bind_uid','rebate_status','rebate_type','status','rebate_issue','p_id'
                ],
                'integer'
            ],
            [['order_price','price','service_charge','premium','refund_amount','refund_service','pay_price','rebate','rebate_price'],'number']
        ];
    }
    /**
     * {@inheritdoc}
     */
    public function attributeLabels()
    {
        return [
            'id' => '自增',
            'order_number' => '订单编号',
            'shift_id'=>'班次ID',
            'circuit_id'=>'线路ID',
            's_id'=>'上车id',
            'e_id'=>'下车id',
            'p_id'=>'途径点信息id',
            'order_status' => '订单状态',
            'ridership' => '乘车人数',
            'order_price'=>'订单总价金额',
            'price'=>'订单金额',
            'service_charge'=>'总服务费',
            'premium'=>'总保险费',
            'refund_amount'=>'退款金额',
            'refund_service'=>'退款手续费',
            'refund_time'=>'退款时间',
            'refund_number'=>'退款单号',
            'refund_status' => '退款状态',
            'source' => '订单来源',
            'user_id' => '用户ID',
            'user_telephone'=>'下单人手机号',
            'pay_type' => '支付类型',
            'pay_time'=>'支付时间',
            'pay_price'=>'支付金额',
            'pay_status' => '支付状态',
            'codenum'=>'二维吗CODE',
            'codeimg'=>'二维码图片地址',
            'is_check' => '是否核销',
            'bind_uid' => '绑定用户ID',
            'rebate_status' => '是否获得分销',
            'rebate_type' => '分销类型',
            'rebate'=>'分销金额',
            'rebate_price' => '应得分销金额',
            'rebate_issue'=>'发放分销金额',
            'status'=>'状态',
            'addtime' => '创建时间',
            'updatetime' => '更新时间',
            'canceltime' => '取消时间',
        ];
    }
    /**
     * @inheritdoc
     */
    public function behaviors()
    {
        return [
            [
                'class' => TimestampBehavior::className(),
                'createdAtAttribute' => 'addtime',// 自己根据数据库字段修改
                'updatedAtAttribute' => 'updatetime', // 自己根据数据库字段修改, // 自己根据数据库字段修改
                //'value'   => new Expression('NOW()'),
                'value'   => function(){return date('Y-m-d H:i:s',time());},
            ],
        ];
    }

    /**
     *  @inheritdoc
     */
    public function getOrderPassenger(){
        return $this->hasMany(OrderPassenger::className(), [ 'order_id' => 'id']);
    }
}
